// Dave's RandomIntPicker.
//
// After several ints have been inserted by [obj insert:n], one unifomrly
// randomly choice can be made by looking at [obj choice].  Any number of
// calls to [obj choice] will return the same value, and should not
// be followed by any more [obj insert:n] without first calling
// [obj reset], which readies the object for a new bunch of choices.

#import <libc.h>
#import "RandomIntPicker.h"

@implementation RandomIntPicker

- init
{
    [self reset];
    return self;
}

- reset
{
    count=0;
    pickedInt=0;
    return self;
}

- (int) choice
{
    return pickedInt;
}

- (int) count
{
    return count;
}

- insert: (int)newInt;
{
    count++;
    if (!(random()%count)) pickedInt=newInt;
    return self;
}

@end
        
